import java.util.ArrayList;
import java.util.List;

public class Test {
   List<List<Integer>>generate(int numRows){
       List<List<Integer>> ret = new ArrayList<>();//这里实例化，相当于这个数组是ArrayList类型的，数组中的元素是List类型的，而数组元素指向的数组元素是Integer类型的
       //创建第一行数组
       List<Integer> row = new ArrayList<>();
       row.add(1);
       ret.add(row);//这里是让ret引用当中的数组，与row引用当中的数组产生联系
       for (int i = 0; i < numRows; i++) {//举例：调用这个方法者，想要3行，到2下标
           List<Integer> prevRow = ret.get(i-1);//获取前一行
           List<Integer> curRow = new ArrayList<>();
           curRow.add(1);//第一个1
           //中间curRow  list的赋值

           for (int j = 1; j < i; j++) {
               int x = prevRow.get(j)+prevRow.get(j-1);
                curRow.add(x);
           }
           curRow.add(1);//最后一个1
           ret.add(curRow);//将最后一行的数组放到ret所引用的数组当中。
       }
        return ret;
   }
}
